#ifndef SPLIT_CHANNELS_H
#define SPLIT_CHANNELS_H
#include <cuda_runtime.h>
#include <vector>
#include "../rt_mem_fly.hpp"


namespace algocommon
{

/**
 *
 * @brief N H W C ---> N C H W
 *
 * @param input_tensor 输入tensor 为 cut——>padding 以后的图像
 * 
 * @param target_tensor 变换后的图像 为 Trt的网络的输入图像
 *
 * @param norm_num 归一化参数yolo所有版本都为255.0
 *
 */


void SplitChannelsYolo(TensorUint8& input_tensor, TensorFloat& target_tensor, \
                       cudaStream_t stream,
                       float norm_num);

void SplitChannelArcfaceFeatureGpu(TensorUint8 &source_tensor,
	TensorFloat &target_tensor,
	float alpha, float beta,
    cudaStream_t stream,
	bool to_rgb = false,
	bool transposition = false);

};//namespace algocommon

















#endif